#ifndef ALGORITHMSHARE_H
#define ALGORITHMSHARE_H

#include <QStringList>

#define SEGMENT_ALGO_INUSE "SEGMENTALGOINUSE"
#define EXTRACT_ALGO_INUSE "EXTRACTALGOINUSE"
#define PREDICT_ALGO_INUSE "PREDICTALGOINUSE"
#define TUMOR_SEED_SIZE    "TUMORSEEDSIZE"

#define PROGNOSTIC_FEATURE_FILE "etc/feature.data"

enum AlgoSegment {
    AS_Default,

    AS_Count,
};

enum AlgoExtract {
    AE_Default,

    AE_Count,
};

enum AlgoPredict {
    AP_Default,

    AP_Count,
};

typedef struct AlgoStringTables {
    QStringList SegmAlgoNames;
    QStringList extrAlgoNames;
    QStringList predAlgoNames;
    AlgoStringTables() {
        SegmAlgoNames << QObject::tr("Default");
        extrAlgoNames << QObject::tr("Default");
        predAlgoNames << QObject::tr("Default");
    }
} AlgoStringTables;

typedef struct AlgoCombo {
    AlgoSegment segment;
    AlgoExtract extract;
    AlgoPredict predict;
    AlgoCombo():segment(AS_Default),extract(AE_Default),predict(AP_Default){}
} AlgoCombo;

typedef struct PredictParam{
    const double *feature;
    double r_svm;
    double r_nstage;
} PredictParam;

#endif // ALGORITHMSHARE_H
